/// 服务器配置
/// 
/// ⚠️ 编译前修改此文件中的配置
/// 这是应用的默认配置，用户可以在运行时通过配置页面修改
/// 
/// 配置优先级：
/// 1. 用户运行时配置（SharedPreferences）- 最高优先级
/// 2. 本文件中的配置 - 默认值
class ServerConfig {
  /// ==========================================
  /// 📝 编译前修改这里的配置
  /// ==========================================
  
  /// API 服务器地址
  /// 例如：http://192.168.1.100:8080 或 https://api.yourdomain.com
  static const String baseUrl = 'http://124.156.188.238:8080';
  // static const String baseUrl = 'http://127.0.0.1:8080';

  /// TCP 隧道服务器主机
  /// 例如：192.168.1.100 或 tunnel.yourdomain.com
  // static const String tcpHost = '127.0.0.1';
  static const String tcpHost = '24.156.188.238';

  /// TCP 隧道服务器端口
  static const int tcpPort = 9001;
  
  /// 默认域名
  static const String defaultDomain = 'localhost.local';
  
  /// ==========================================
  /// 其他配置（一般不需要修改）
  /// ==========================================
  
  /// 网络请求超时时间（毫秒）
  static const int timeout = 30000;
  
  /// 模拟延迟（毫秒，用于测试）
  static const int mockDelay = 1000;
  
  /// 自动重连
  static const bool autoReconnect = true;
  
  /// ==========================================
  /// 辅助方法
  /// ==========================================
  
  /// 获取完整的 API URL
  static String getApiUrl(String path) {
    if (!path.startsWith('/')) {
      path = '/$path';
    }
    return '$baseUrl$path';
  }
  
  /// 获取 TCP 隧道完整地址
  static String getTcpTunnelAddress() {
    return '$tcpHost:$tcpPort';
  }
  
  /// 检查是否为开发环境
  static bool get isDevelopment {
    return baseUrl.contains('localhost') || 
           baseUrl.contains('127.0.0.1') ||
           baseUrl.contains('192.168.') ||
           baseUrl.contains('10.0.');
  }
  
  /// 获取所有配置的 Map
  static Map<String, dynamic> toMap() {
    return {
      'baseUrl': baseUrl,
      'tcpHost': tcpHost,
      'tcpPort': tcpPort,
      'timeout': timeout,
      'mockDelay': mockDelay,
      'defaultDomain': defaultDomain,
      'autoReconnect': autoReconnect,
    };
  }
  
  /// 打印配置信息（用于调试）
  static String getDebugInfo() {
    final buffer = StringBuffer();
    buffer.writeln('=== ServerConfig 配置信息 ===');
    buffer.writeln('baseUrl: $baseUrl');
    buffer.writeln('tcpHost: $tcpHost');
    buffer.writeln('tcpPort: $tcpPort');
    buffer.writeln('defaultDomain: $defaultDomain');
    buffer.writeln('timeout: ${timeout}ms');
    buffer.writeln('autoReconnect: $autoReconnect');
    buffer.writeln('isDevelopment: $isDevelopment');
    return buffer.toString();
  }
}

